package builder;

import java.util.Vector;

import model.Action;

public class TemplateMethodBuilder extends AbstractPatternBuilder {

	private String abstractClass = "AbstractClass";
	private String concreteClass = "ConcreteClass";
	
	public TemplateMethodBuilder() {
		super();
	}

	@Override
	public Vector<Action> buildPattern() {
		
		this.buildClass(concreteClass);	
		
		this.buildAbstractClass(abstractClass);
		
		this.buildGeneralization(concreteClass, abstractClass);
		
		return patternActions;
	}

	@Override
	public void changeNames() {
		
		abstractClass = names.get(0);
		concreteClass = names.get(1);

	}
	
	@Override
	public int cantUMLElements() {
		return 2;
	}

}
